import greenfoot.*;  // (World, Actor, GreenfootImage, Greenfoot and MouseInfo)

/**
 * Tiburon: verifica si choco con algun coral 
 * y cambia de direccion, en caso de llegar al 
 * limite de la pantalla cambia la otro extremo, 
 * verifica si hubo colision con alguna BalaPlancton 
 * y resta velocidad y cuando sea 0 eliminara al Tiburon
 * 
 * @author Vianey Ortiz 
 * @version 05/11/2012
 */
public class Tiburon extends Enemigo
{
    private int diente;
    /**
     * Se encarga de verificar si choca con algun coral 
     * para cambiarlo de posicion, verifica el movimiento 
     * del pez para seguirlo, verifica que su velocidad 
     * sea diferente de cero y checa cuando es momento de lanzar
     * Dientes contra el pez.
     */
    public void act() 
    {
        if(checacoralMueve())
        {
            super.checaMovPez();
            move(super.velocidad());
            super.checaLimiteDer();
        }
        else
        {
            turn(-100);
            move(250);
        }
        
        velocidadActual();
        
        if(velocidad()==0)
        {
            eliminaEnemigo();
        }
        else
        {
            WorldFish mundo;
            mundo=(WorldFish)super.getWorld();
            diente=((mundo.getObjects(Diente.class)).toArray()).length;
            if(((mundo.getObjects(Tiburon.class)).toArray()).length!=0&&hayPlancton()!=0&&diente==0)
            {
                disparaDiente();                 
            }    
        }
    }
    
    /**
     * Agrega un diente al mundo
     */
    public void disparaDiente()
    {  
        WorldFish mundo;
        mundo=(WorldFish)super.getWorld();
        Diente diente;
        diente=new Diente();
        mundo.addObject(diente,getX(),getY());
    }
}
